
#pragma once
#if !defined(__structs__)
#include "structs.h"
#define __structs__
#endif
LPVOID(WINAPI * LdrLoadDll) (ULONG64 dwFlags,
	PULONG DllCharacteristics,
	PUNICODE_STRING DllPath,
	PVOID *DllHandle);
typedef NTSTATUS(WINAPI *LdrGetProcedureAddressT)(IN PVOID DllHandle, IN PANSI_STRING ProcedureName OPTIONAL, IN ULONG ProcedureNumber OPTIONAL, OUT FARPROC *ProcedureAddress);
typedef VOID(WINAPI *RtlFreeUnicodeStringT)(_Inout_ PUNICODE_STRING UnicodeString);
typedef  VOID(WINAPI *RtlInitAnsiStringT)(_Out_    PANSI_STRING DestinationString, _In_opt_ PCSZ         SourceString);
typedef NTSTATUS(WINAPI *RtlAnsiStringToUnicodeStringT)(_Inout_ PUNICODE_STRING DestinationString, _In_ PCANSI_STRING SourceString, _In_ BOOLEAN AllocateDestinationString);
typedef NTSTATUS(WINAPI *LdrLoadDllT) (ULONG64 dwFlags,
	PULONG DllCharacteristics,
	PUNICODE_STRING DllPath,
	PVOID *DllHandle);
typedef BOOL(APIENTRY *ProcDllMain)(LPVOID, DWORD, LPVOID);
typedef NTSTATUS(WINAPI *NtAllocateVirtualMemoryT)(IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN OUT PSIZE_T RegionSize, IN ULONG AllocationType, IN ULONG Protect);

typedef
VOID
(WINAPI
*RtlFreeAnsiStringT)(
	_Inout_ _At_(AnsiString->Buffer, _Frees_ptr_opt_)
	PANSI_STRING AnsiString
);
typedef
VOID
(WINAPI
	*RtlInitUnicodeStringT)(
	_Out_ PUNICODE_STRING DestinationString,
	_In_opt_z_ __drv_aliasesMem PCWSTR SourceString
);
